// 定义请求路径, BASEURL: 普通请求API; CBASEURL: 中台API,不使用中台可不引入CBASEURL
import  baseURL from "./config";


/**
 * 上传单个文件
 * @param {*} filePath 
 * @param {*} url 
 * @param {*} formData 
 * @param {*} successCallback 
 * @param {*} failCallback 
 */  
function uploadSingleFile(filePath, url, formData = {}, successCallback, failCallback) {  
  wx.uploadFile({  
    url: baseURL.BASEURL+url, // 开发者服务器 url  
    filePath: filePath, // 要上传文件资源的路径 (本地路径)  
    name: 'file', // 发送到服务器的文件参数名  
    formData: formData, // HTTP 请求中其他额外的 form data  
    success: function(res) {  
      if (res.statusCode === 200) {  
        // 对返回的数据进行处理  
        const data = JSON.parse(res.data);  
        successCallback(data);  
      } else {  
        failCallback(res.errMsg);  
      }  
    },  
    fail: failCallback  
  });  
}  


/**
 * 上传多个文件
 * @param {*} files 
 * @param {*} url 
 * @param {*} formData 
 * @param {*} successCallback 
 * @param {*} failCallback 
 */
function uploadMultipleFiles(files, url, formData = {}, successCallback, failCallback) {  
  const promises = files.map(file => {  
    return new Promise((resolve, reject) => {  
      wx.uploadFile({  
        url: baseURL.BASEURL+url,  
        filePath: file.path,  
        name: 'file', // 或者可以根据需要动态设置  
        formData: {  
          ...formData,  
          // 可以添加额外的formData，比如每个文件的标识  
          // fileName: file.name,  
        },  
        success: function(res) {  
          if (res.statusCode === 200) {  
            resolve(JSON.parse(res.data));  
          } else {  
            reject(res.errMsg);  
          }  
        },  
        fail: reject  
      });  
    });  
  });  
  
Promise.all(promises)  
  .then(results => {  
    successCallback(results);  
  })  
  .catch(error => {  
    failCallback(error);  
  });  
}  

export default{
  uploadSingleFile,
  uploadMultipleFiles
}
  
